package com.neusoft.yiyang.care.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.neusoft.yiyang.common.entity.care.CareItem;
import com.neusoft.yiyang.care.mapper.CareItemMapper;
import com.neusoft.yiyang.care.service.CareItemService;
import com.neusoft.yiyang.common.exception.BusinessException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CareItemServiceImpl implements CareItemService {

    @Autowired
    private CareItemMapper careItemMapper;

    @Override
    public List<CareItem> getAllCareItems() {
        return careItemMapper.selectList(null);
    }

    @Override
    public CareItem getCareItemById(Integer careItemId) {
        CareItem item = careItemMapper.selectById(careItemId);
        if (item == null) {
            throw new BusinessException(4004, "护理项目不存在");
        }
        return item;
    }

    @Override
    public void addCareItem(CareItem careItem) {
        careItemMapper.insert(careItem);
    }

    @Override
    public void updateCareItem(CareItem careItem) {
        careItemMapper.updateById(careItem);
    }

    @Override
    public void deleteCareItem(Integer careItemId) {
        careItemMapper.deleteById(careItemId);
    }

    // 分页查询实现
    @Override
    public Page<CareItem> pageQuery(Page<CareItem> page, String status, String name) {
        LambdaQueryWrapper<CareItem> wrapper = new LambdaQueryWrapper<>();

        // 状态过滤
        if (status != null && !status.isEmpty()) {
            wrapper.eq(CareItem::getStatus, status);
        }
        // 名称模糊查询
        if (name != null && !name.isEmpty()) {
            wrapper.like(CareItem::getItemName, name);
        }

        // 执行分页查询
        return careItemMapper.selectPage(page, wrapper);
    }
}
